import axios from 'axios'
import {Message} from 'element-ui'


/*响应拦截器 统一处理错误提示 */
// axios.interceptors.response.use(
//   //200
//   success => {
//     alert(success)
//     //获取服务端返回来的状态码
//     const code = success.data.code
//     //能访问到服务端url 但出现逻辑业务等错误 
//     if(code == 500 || code == 401 || code == 403){
//       return Message.error({message:success.data.message})
//     }
//     //表明处理成功
//     if(success.data.message){
//       Message.success({message:success.data.message})
//       Message.success(success.data.message)
//     }
//     //返回数据
//     return Message.data
//   },
//   //500 访问不到服务端接口
//   error => {
//     alert(error,'error')
//     const code = error.response.code
//     if(code == 504 || code == 404){
//       Message.error({message:'服务器炸掉了,请稍后重试!'})
//     }else if(code == 403){
//       Message.error({message:'权限不足,请联系管理员!'})
//     }else if(code == 401) {
//       Message.error({message:'尚未登陆,请先登陆!'})
//     }else{
//       if(error.response.data.message){
//         Message.error(error.response.data.message,'22')
//         Message.error({message:error.response.data.message})
//       }else {
//         Message.error({message:'未知错误!'})
//       }
//     }
//     return
//   }
// )

//请求拦截器
axios.interceptors.request.use(config=>{
  const token = sessionStorage.getItem('token')
  if(token){
    config.headers['Authorization'] = token
  }
  return config
})

//响应拦截器
axios.interceptors.response.use(success => {
  //服务端业务逻辑错误
  if (success.status && success.status == 200 && success.data.code == 500) {
      Message.error({ message: success.data.msg })
      return;
  }
  //请求成功
  if (success.data.msg) {
      Message.success({ message: success.data.msg })
  }
  return success.data;
}, error => {
  if (error.response.code == 504 || error.response.code == 404) {
      Message.error({ message: '服务器被吃了(╯□╰)' })
  } else if (error.response.code == 403) {
      Message.error({ message: '权限不足，请联系管理员' })
  } else if (error.response.code == 401) {
      Message.error({ message: '用户名或密码错误!' });
      router.replace('/')
  } else {
      if (error.response.data.msg) {
        // console.log(111);
          // Message.error({message:'我进来了'})
        
          Message.error({ message: error.response.data.msg })
      } else {
          Message.error({ message: '未知错误!' })
      }
  }
  return;
})

let base = '';
//传递json的post请求
export const postRequest = (url, params) => {
    return axios({
        method: 'post',
        url: `${base}${url}`,
        data: params
    })
}
//传递json的put请求
export const putRequest = (url, params) => {
  return axios({
      method: 'put',
      url: `${base}${url}`,
      data: params
  })
}
//传递json的get请求
export const getRequest = (url, params) => {
  return axios({
      method: 'get',
      url: `${base}${url}`,
      data: params,

  })
}
//传递json的delete请求
export const deleteRequest = (url, params) => {
  return axios({
      method: 'delete',
      url: `${base}${url}`,
      data: params
  })
}
